library(igraph)
##
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
##
## decompose, spectrum
## The following object is masked from 'package:base':
##
## union
library(knitr)
#library(xlsx)
fulldata <- read.csv("peoplepickinganonymised.csv")
dffrmatrix <- fulldata[,4:63]
frmatrix <- as.matrix(dffrmatrix)
G <- graph_from_adjacency_matrix(frmatrix, mode = "directed",add.colnames = TRUE, diag=FALSE)
basic plot with R
coords <- layout_(G, nicely())
plot(G, vertex.size=12, edge.arrow.size=0.2)
Plot with some more parameters
plot(G, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.color="darkblue",
vertex.label.family="Helvetica")
Random layout
plot(G, layout = layout_randomly, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.color="darkblue",
vertex.label.family="Helvetica")
Sphere layout
l <- layout_on_sphere(G)
plot(G, layout=l, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.color="darkblue",
vertex.label.family="Helvetica")
Kamada-Kawai layout (quite nice I think)
l <- layout_with_kk(G)
plot(G, layout=l, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.color="darkblue",
vertex.label.family="Helvetica")
Fruchterman Reingold layout (best for displaying communities and cliques)
l <-layout.fruchterman.reingold(G)
plot(G, layout=l, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.color="darkblue",
vertex.label.family="Helvetica")
com <- cluster_spinglass(G, spin=5)
V(G)$color <- com$membership+1
G <- set_graph_attr(G, "layout", layout.fruchterman.reingold(G))
plot(G, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.label.family="Helvetica")
com <- cluster_edge_betweenness(G)
V(G)$color <- com$membership+1
G <- set_graph_attr(G, "layout", layout.fruchterman.reingold(G))
plot(G, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.label.family="Helvetica")
com <- cluster_leading_eigen(G)
## Warning in .Call("R_igraph_community_leading_eigenvector", graph, steps, :
## At community.c:1565 :This method was developed for undirected graphs
V(G)$color <- com$membership+1
G <- set_graph_attr(G, "layout", layout.fruchterman.reingold(G))
plot(G, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.label.family="Helvetica")
com <- cluster_walktrap(G)
V(G)$color <- com$membership+1
G <- set_graph_attr(G, "layout", layout.fruchterman.reingold(G))
plot(G, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.label.family="Helvetica")
Fast Greedy clustering (treats as undirected)
cfg <- cluster_fast_greedy(as.undirected(G))
plot(cfg, as.undirected(G), vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.family="Helvetica")
G.degree <- degree(G, mode="in")
set.seed(888)
com <- cluster_infomap(G)
G <- set_graph_attr(G, "layout", layout.fruchterman.reingold(G))
nodes <- 1:60
cluster1 <- nodes[com$membership == 1]
cluster2 <- nodes[com$membership == 2]
cluster3 <- nodes[com$membership == 3]
cluster4 <- nodes[com$membership == 4]
V(G)[cluster1]$color <- "#2DA5DB"
V(G)[cluster2]$color <- "#37BDA7"
V(G)[cluster3]$color <- "#E50328"
V(G)[cluster4]$color <- "orchid4"
plot(G, vertex.size=(log(G.degree))*5+5, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.label.family="Helvetica", edge.curved=TRUE)
G.cli <- cliques(G, min = 5, max = NULL)
# Set subgraph members
clique1 <- as.vector(G.cli[[1]])
clique2 <- as.vector(G.cli[[2]])
clique3 <- as.vector(G.cli[[3]])
clique4 <- as.vector(G.cli[[4]])
# Add edge attribute id values
E(G)$id <- seq(ecount(G))
# Extract supgraph
sg.c1 <- induced.subgraph(graph=G,vids=clique1)
sg.c1.Id <- E(sg.c1)$id
sg.c2 <- induced.subgraph(graph=G,vids=clique2)
sg.c2.Id <- E(sg.c2)$id
sg.c3 <- induced.subgraph(graph=G,vids=clique3)
sg.c3.Id <- E(sg.c3)$id
sg.c4 <- induced.subgraph(graph=G,vids=clique4)
sg.c4.Id <- E(sg.c4)$id
# Set graph and subgraph edge and node colors and sizes
E(G)$color="grey"
V(G)$color="darkgray"
V(G)$label.color="white"
E(G)[sg.c1.Id]$color <- "green"
V(G)[clique1]$color <- "green"
E(G)[sg.c2.Id]$color <- "red"
V(G)[clique2]$color <- "red"
E(G)[sg.c3.Id]$color <- "orange"
V(G)[clique3]$color <- "orange"
E(G)[sg.c4.Id]$color <- "blue"
V(G)[clique4]$color <- "blue"
# Set seed value
set.seed(40041)
# Set layout options
l <- layout_as_tree(G)
# Plot graph and subgraph
plot.igraph(x=G,layout=l, vertex.size=15, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.family="Helvetica")
#Reset graph parameters
E(G)$color="grey"
V(G)$color="darkblue"
We can see for the 4 largest cliques (of size 5), the orange and red clique are overlapping (node 54 is in red but not orange, and node 55 is in orange but not red).
| cluster | clique |
|---|---|
| green | green |
| yellow | red |
| yellow | orange |
| blue | blue |
Plot for friend graph with size = in degree.
set.seed(48)
layoutfr <- layout.fruchterman.reingold(G)
G.degree <- degree(G, mode="in")
G <- set_graph_attr(G, "layout", layoutfr)
plot(G, vertex.size=G.degree*2, edge.arrow.size=0.2, edge.width=0.2, vertex.label.cex=0.42, vertex.label.color="white", vertex.label.family="Helvetica")
Advice Graph
Creative Graph
Implementation Graph
Influence Graph
The most basic set of measures would be the in degree for each of the relevant questions.
Below is a table with the ranking of nodes by in degree for each of the questions.
indegreetable <- data.frame(
friendship =order(G.degree, decreasing = TRUE),
advice =order(G.adv.degree, decreasing = TRUE),
creativity =order(G.cr.degree, decreasing = TRUE),
influence =order(G.infl.degree, decreasing = TRUE),
implementation=order(G.imp.degree, decreasing = TRUE))
kable(indegreetable)
| friendship | advice | creativity | influence | implementation |
|---|---|---|---|---|
| 33 | 19 | 7 | 21 | 33 |
| 17 | 22 | 33 | 7 | 21 |
| 14 | 34 | 21 | 30 | 7 |
| 19 | 17 | 19 | 52 | 19 |
| 21 | 33 | 50 | 20 | 30 |
| 46 | 46 | 20 | 34 | 46 |
| 51 | 23 | 30 | 19 | 20 |
| 29 | 5 | 51 | 33 | 22 |
| 7 | 14 | 25 | 22 | 25 |
| 22 | 21 | 28 | 2 | 52 |
| 25 | 11 | 6 | 14 | 2 |
| 50 | 26 | 14 | 25 | 14 |
| 56 | 30 | 42 | 50 | 6 |
| 59 | 50 | 46 | 1 | 29 |
| 2 | 57 | 48 | 6 | 48 |
| 12 | 1 | 49 | 17 | 50 |
| 20 | 37 | 59 | 23 | 17 |
| 28 | 51 | 22 | 9 | 18 |
| 48 | 55 | 24 | 18 | 1 |
| 52 | 24 | 57 | 24 | 26 |
| 6 | 29 | 13 | 28 | 57 |
| 13 | 32 | 15 | 29 | 11 |
| 18 | 41 | 29 | 41 | 15 |
| 54 | 49 | 35 | 45 | 16 |
| 57 | 2 | 39 | 51 | 23 |
| 58 | 9 | 41 | 56 | 24 |
| 5 | 28 | 56 | 57 | 31 |
| 9 | 35 | 16 | 5 | 43 |
| 16 | 36 | 18 | 8 | 8 |
| 26 | 43 | 26 | 10 | 9 |
| 32 | 48 | 38 | 11 | 13 |
| 35 | 52 | 43 | 15 | 41 |
| 43 | 12 | 45 | 16 | 42 |
| 10 | 13 | 52 | 26 | 51 |
| 11 | 15 | 54 | 38 | 56 |
| 24 | 16 | 58 | 39 | 5 |
| 37 | 18 | 60 | 13 | 10 |
| 39 | 25 | 1 | 37 | 12 |
| 41 | 42 | 2 | 43 | 32 |
| 53 | 60 | 8 | 48 | 37 |
| 55 | 4 | 9 | 54 | 39 |
| 1 | 6 | 10 | 58 | 40 |
| 3 | 8 | 17 | 12 | 44 |
| 23 | 20 | 37 | 32 | 45 |
| 31 | 31 | 40 | 35 | 53 |
| 36 | 40 | 53 | 40 | 55 |
| 38 | 44 | 55 | 49 | 59 |
| 40 | 53 | 3 | 53 | 27 |
| 42 | 54 | 5 | 55 | 28 |
| 44 | 56 | 11 | 59 | 35 |
| 45 | 58 | 12 | 4 | 38 |
| 49 | 3 | 23 | 27 | 49 |
| 60 | 10 | 34 | 31 | 54 |
| 4 | 27 | 36 | 42 | 60 |
| 15 | 39 | 44 | 44 | 4 |
| 8 | 45 | 4 | 46 | 3 |
| 30 | 7 | 27 | 60 | 34 |
| 34 | 38 | 31 | 3 | 36 |
| 47 | 47 | 32 | 36 | 47 |
| 27 | 59 | 47 | 47 | 58 |
Focusing on the three main questions, and to trade this off against “cost”, we simply divide by the in-degree of the friendship question. Below are the rankings that occur after this transformation. We can see that #27 is at the top, because this node had an in degree of 0 for the friendship question. To remove this anomaly we set the in degree artificially to 0.5.
G.degree[27] <- 0.5
indegreetable <- data.frame(
creativity =order(G.cr.degree/G.degree, decreasing = TRUE),
influence =order(G.infl.degree/G.degree, decreasing = TRUE),
implementation=order(G.imp.degree/G.degree, decreasing = TRUE))
kable(indegreetable)
| creativity | influence | implementation |
|---|---|---|
| 30 | 30 | 30 |
| 8 | 34 | 8 |
| 15 | 8 | 27 |
| 42 | 52 | 15 |
| 49 | 21 | 1 |
| 7 | 20 | 23 |
| 27 | 7 | 31 |
| 34 | 1 | 7 |
| 20 | 15 | 20 |
| 50 | 23 | 52 |
| 21 | 27 | 6 |
| 24 | 45 | 21 |
| 38 | 38 | 2 |
| 45 | 22 | 22 |
| 60 | 24 | 25 |
| 19 | 41 | 42 |
| 39 | 19 | 19 |
| 41 | 2 | 46 |
| 6 | 6 | 11 |
| 28 | 9 | 24 |
| 33 | 10 | 26 |
| 1 | 11 | 33 |
| 25 | 39 | 18 |
| 35 | 25 | 48 |
| 40 | 50 | 14 |
| 47 | 18 | 16 |
| 48 | 57 | 40 |
| 57 | 5 | 41 |
| 51 | 14 | 43 |
| 59 | 16 | 44 |
| 13 | 26 | 45 |
| 16 | 37 | 50 |
| 26 | 33 | 57 |
| 43 | 28 | 29 |
| 10 | 40 | 9 |
| 22 | 49 | 10 |
| 37 | 56 | 37 |
| 53 | 43 | 39 |
| 55 | 29 | 53 |
| 14 | 4 | 55 |
| 46 | 13 | 13 |
| 3 | 17 | 38 |
| 18 | 51 | 49 |
| 23 | 53 | 60 |
| 36 | 54 | 5 |
| 44 | 55 | 32 |
| 54 | 58 | 17 |
| 58 | 48 | 4 |
| 56 | 32 | 56 |
| 9 | 35 | 12 |
| 52 | 31 | 35 |
| 29 | 42 | 51 |
| 4 | 44 | 59 |
| 11 | 60 | 54 |
| 2 | 12 | 28 |
| 5 | 59 | 3 |
| 31 | 46 | 34 |
| 12 | 3 | 36 |
| 17 | 36 | 47 |
| 32 | 47 | 58 |
To see how these rankings are formed, the raw data is included into the table
G.degree[27] <- 0.5
indegreetable <- data.frame(
creativity =order(G.cr.degree/G.degree, decreasing = TRUE),
frienddegree.cr =as.integer(G.degree[order(G.cr.degree/G.degree, decreasing=TRUE)]),
crdegree =as.integer(G.cr.degree[order(G.cr.degree/G.degree, decreasing=TRUE)]),
influence =order(G.infl.degree/G.degree, decreasing = TRUE),
frienddegree.infl =as.integer(G.degree[order(G.infl.degree/G.degree, decreasing=TRUE)]),
infldegree =as.integer(G.infl.degree[order(G.infl.degree/G.degree, decreasing=TRUE)]),
implementation=order(G.imp.degree/G.degree, decreasing = TRUE),
frienddegree.imp =as.integer(G.degree[order(G.imp.degree/G.degree, decreasing=TRUE)]),
impldegree =as.integer(G.imp.degree[order(G.imp.degree/G.degree, decreasing=TRUE)]))
kable(indegreetable)
| creativity | frienddegree.cr | crdegree | influence | frienddegree.infl | infldegree | implementation | frienddegree.imp | impldegree |
|---|---|---|---|---|---|---|---|---|
| 30 | 1 | 11 | 30 | 1 | 17 | 30 | 1 | 13 |
| 8 | 1 | 3 | 34 | 1 | 13 | 8 | 1 | 4 |
| 15 | 2 | 5 | 8 | 1 | 4 | 27 | 0 | 2 |
| 42 | 3 | 7 | 52 | 7 | 16 | 15 | 2 | 5 |
| 49 | 3 | 7 | 21 | 10 | 22 | 1 | 3 | 6 |
| 7 | 8 | 17 | 20 | 7 | 15 | 23 | 3 | 5 |
| 27 | 0 | 1 | 7 | 8 | 17 | 31 | 3 | 5 |
| 34 | 1 | 2 | 1 | 3 | 6 | 7 | 8 | 13 |
| 20 | 7 | 12 | 15 | 2 | 4 | 20 | 7 | 11 |
| 50 | 8 | 13 | 23 | 3 | 6 | 52 | 7 | 11 |
| 21 | 10 | 15 | 27 | 0 | 1 | 6 | 6 | 9 |
| 24 | 4 | 6 | 45 | 3 | 5 | 21 | 10 | 15 |
| 38 | 3 | 4 | 38 | 3 | 4 | 2 | 7 | 10 |
| 45 | 3 | 4 | 22 | 8 | 10 | 22 | 8 | 11 |
| 60 | 3 | 4 | 24 | 4 | 5 | 25 | 8 | 11 |
| 19 | 10 | 13 | 41 | 4 | 5 | 42 | 3 | 4 |
| 39 | 4 | 5 | 19 | 10 | 12 | 19 | 10 | 13 |
| 41 | 4 | 5 | 2 | 7 | 8 | 46 | 10 | 13 |
| 6 | 6 | 7 | 6 | 6 | 6 | 11 | 4 | 5 |
| 28 | 7 | 8 | 9 | 5 | 5 | 24 | 4 | 5 |
| 33 | 15 | 16 | 10 | 4 | 4 | 26 | 5 | 6 |
| 1 | 3 | 3 | 11 | 4 | 4 | 33 | 15 | 18 |
| 25 | 8 | 8 | 39 | 4 | 4 | 18 | 6 | 7 |
| 35 | 5 | 5 | 25 | 8 | 7 | 48 | 7 | 8 |
| 40 | 3 | 3 | 50 | 8 | 7 | 14 | 10 | 10 |
| 47 | 1 | 1 | 18 | 6 | 5 | 16 | 5 | 5 |
| 48 | 7 | 7 | 57 | 6 | 5 | 40 | 3 | 3 |
| 57 | 6 | 6 | 5 | 5 | 4 | 41 | 4 | 4 |
| 51 | 10 | 9 | 14 | 10 | 8 | 43 | 5 | 5 |
| 59 | 8 | 7 | 16 | 5 | 4 | 44 | 3 | 3 |
| 13 | 6 | 5 | 26 | 5 | 4 | 45 | 3 | 3 |
| 16 | 5 | 4 | 37 | 4 | 3 | 50 | 8 | 8 |
| 26 | 5 | 4 | 33 | 15 | 11 | 57 | 6 | 6 |
| 43 | 5 | 4 | 28 | 7 | 5 | 29 | 9 | 8 |
| 10 | 4 | 3 | 40 | 3 | 2 | 9 | 5 | 4 |
| 22 | 8 | 6 | 49 | 3 | 2 | 10 | 4 | 3 |
| 37 | 4 | 3 | 56 | 8 | 5 | 37 | 4 | 3 |
| 53 | 4 | 3 | 43 | 5 | 3 | 39 | 4 | 3 |
| 55 | 4 | 3 | 29 | 9 | 5 | 53 | 4 | 3 |
| 14 | 10 | 7 | 4 | 2 | 1 | 55 | 4 | 3 |
| 46 | 10 | 7 | 13 | 6 | 3 | 13 | 6 | 4 |
| 3 | 3 | 2 | 17 | 12 | 6 | 38 | 3 | 2 |
| 18 | 6 | 4 | 51 | 10 | 5 | 49 | 3 | 2 |
| 23 | 3 | 2 | 53 | 4 | 2 | 60 | 3 | 2 |
| 36 | 3 | 2 | 54 | 6 | 3 | 5 | 5 | 3 |
| 44 | 3 | 2 | 55 | 4 | 2 | 32 | 5 | 3 |
| 54 | 6 | 4 | 58 | 6 | 3 | 17 | 12 | 7 |
| 58 | 6 | 4 | 48 | 7 | 3 | 4 | 2 | 1 |
| 56 | 8 | 5 | 32 | 5 | 2 | 56 | 8 | 4 |
| 9 | 5 | 3 | 35 | 5 | 2 | 12 | 7 | 3 |
| 52 | 7 | 4 | 31 | 3 | 1 | 35 | 5 | 2 |
| 29 | 9 | 5 | 42 | 3 | 1 | 51 | 10 | 4 |
| 4 | 2 | 1 | 44 | 3 | 1 | 59 | 8 | 3 |
| 11 | 4 | 2 | 60 | 3 | 1 | 54 | 6 | 2 |
| 2 | 7 | 3 | 12 | 7 | 2 | 28 | 7 | 2 |
| 5 | 5 | 2 | 59 | 8 | 2 | 3 | 3 | 0 |
| 31 | 3 | 1 | 46 | 10 | 1 | 34 | 1 | 0 |
| 12 | 7 | 2 | 3 | 3 | 0 | 36 | 3 | 0 |
| 17 | 12 | 3 | 36 | 3 | 0 | 47 | 1 | 0 |
| 32 | 5 | 1 | 47 | 1 | 0 | 58 | 6 | 0 |
There are also network-specific properties that are important for the choice of teams. Below rankings are created from weighted averages of standardised metrics, including network proporties from the friendship graph.
For the Design team it would be useful to have:
dfpartymatrix <- fulldata[,1:3]
levels(dfpartymatrix$style) <- c("cosy","mixer","party")
levels(dfpartymatrix$guestlist) <- c("exclusive","expansive","tight")
##define metric for design team based on party choices, from stage/style matrix in slides
dfpartymatrix$designpartymetric <- 0
##add party type metrics
dfpartymatrix$designpartymetric[dfpartymatrix$guestlist == "exclusive"] <- 2
dfpartymatrix$designpartymetric[dfpartymatrix$guestlist == "expansive"] <- 3
dfpartymatrix$designpartymetric[dfpartymatrix$guestlist == "tight"] <- 1
##add leader metric
dfpartymatrix$designleaderscore <- 0
dfpartymatrix$designleaderscore[as.vector(adjacent_vertices(G.cr, 30, mode ="out")[[1]])] <- 1
standardise <- function(x){(x-min(x))/(max(x)-min(x))}
fr.btwn.centr <- as.numeric(betweenness(G))
creativitymetric <- (standardise(fr.btwn.centr)*0.15 +
standardise(G.cr.degree)*0.55 +
standardise(dfpartymatrix$designpartymetric)*0.15 +
dfpartymatrix$designleaderscore*0.15 )/standardise(G.degree)
designtable <- data.frame(
node =order(creativitymetric, decreasing = TRUE),
creativitymetric =creativitymetric[order(creativitymetric, decreasing=TRUE)],
creativitydegree =as.integer(G.cr.degree[order(creativitymetric, decreasing=TRUE)]),
frienddegree =as.integer(G.degree[order(creativitymetric, decreasing=TRUE)]),
btwncentrality = fr.btwn.centr[order(creativitymetric, decreasing=TRUE)])
kable(designtable)
| node | creativitymetric | creativitydegree | frienddegree | btwncentrality |
|---|---|---|---|---|
| 27 | Inf | 1 | 0 | 0.00000 |
| 30 | 14.4964337 | 11 | 1 | 13.47460 |
| 34 | 5.5766639 | 2 | 1 | 17.42599 |
| 8 | 3.3921420 | 3 | 1 | 106.04675 |
| 15 | 2.7791667 | 5 | 2 | 0.00000 |
| 49 | 2.4292618 | 7 | 3 | 137.64460 |
| 39 | 1.8863339 | 5 | 4 | 39.19423 |
| 45 | 1.7227231 | 4 | 3 | 96.53696 |
| 20 | 1.6812143 | 12 | 7 | 166.09037 |
| 38 | 1.6645686 | 4 | 3 | 74.48627 |
| 50 | 1.5879581 | 13 | 8 | 239.40071 |
| 7 | 1.4237099 | 17 | 8 | 80.05487 |
| 24 | 1.4183667 | 6 | 4 | 45.06039 |
| 3 | 1.3886613 | 2 | 3 | 121.06502 |
| 44 | 1.3861846 | 2 | 3 | 120.12593 |
| 1 | 1.3113743 | 3 | 3 | 16.16201 |
| 42 | 1.2916701 | 7 | 3 | 36.18082 |
| 57 | 1.2440341 | 6 | 6 | 329.88131 |
| 31 | 1.1796985 | 1 | 3 | 117.42959 |
| 23 | 1.1614107 | 2 | 3 | 34.89756 |
| 52 | 1.1050661 | 4 | 7 | 202.87577 |
| 26 | 1.0916006 | 4 | 5 | 188.35695 |
| 60 | 1.0899515 | 4 | 3 | 186.48780 |
| 21 | 1.0622683 | 15 | 10 | 142.33039 |
| 37 | 1.0542794 | 3 | 4 | 78.58043 |
| 28 | 0.9879882 | 8 | 7 | 114.94440 |
| 35 | 0.9778812 | 5 | 5 | 35.14418 |
| 47 | 0.9531921 | 1 | 1 | 72.28512 |
| 16 | 0.9487869 | 4 | 5 | 90.88476 |
| 11 | 0.8821614 | 2 | 4 | 62.81051 |
| 41 | 0.8291145 | 5 | 4 | 137.73882 |
| 58 | 0.7868719 | 4 | 6 | 99.72016 |
| 13 | 0.7827005 | 5 | 6 | 185.58332 |
| 33 | 0.7644160 | 16 | 15 | 217.26193 |
| 48 | 0.7513743 | 7 | 7 | 122.21650 |
| 19 | 0.7244627 | 13 | 10 | 136.67637 |
| 6 | 0.7061301 | 7 | 6 | 135.45469 |
| 2 | 0.6655539 | 3 | 7 | 175.06082 |
| 22 | 0.6411356 | 6 | 8 | 186.37606 |
| 46 | 0.6135085 | 7 | 10 | 100.51236 |
| 51 | 0.6087607 | 9 | 10 | 272.35707 |
| 56 | 0.5978503 | 5 | 8 | 47.79516 |
| 25 | 0.5416014 | 8 | 8 | 86.89877 |
| 9 | 0.5381137 | 3 | 5 | 216.07405 |
| 59 | 0.5178148 | 7 | 8 | 135.43881 |
| 29 | 0.5169706 | 5 | 9 | 199.14212 |
| 43 | 0.4794138 | 4 | 5 | 100.41275 |
| 18 | 0.4669831 | 4 | 6 | 162.75583 |
| 12 | 0.4634222 | 2 | 7 | 51.38665 |
| 40 | 0.4610819 | 3 | 3 | 23.63464 |
| 55 | 0.4590250 | 3 | 4 | 92.47484 |
| 54 | 0.4371956 | 4 | 6 | 137.90757 |
| 10 | 0.4089746 | 3 | 4 | 65.90589 |
| 36 | 0.3459370 | 2 | 3 | 55.57248 |
| 17 | 0.3442103 | 3 | 12 | 119.29474 |
| 14 | 0.3148026 | 7 | 10 | 0.00000 |
| 53 | 0.2848214 | 3 | 4 | 0.00000 |
| 5 | 0.2444942 | 2 | 5 | 91.27267 |
| 4 | 0.2309100 | 1 | 2 | 52.53303 |
| 32 | 0.1079593 | 1 | 5 | 73.68362 |
For the Lobbying team it would be useful to have:
dfpartymatrix$lobbypartymetric <- 0
##add party type metrics
dfpartymatrix$lobbypartymetric[dfpartymatrix$guestlist == "exclusive"] <- 3
dfpartymatrix$lobbypartymetric[dfpartymatrix$guestlist == "expansive"] <- 3
dfpartymatrix$lobbypartymetric[dfpartymatrix$guestlist == "tight"] <- 1
##add leader metric
dfpartymatrix$lobbyleaderscore <- 0
dfpartymatrix$lobbyleaderscore[as.vector(adjacent_vertices(G.infl, 33, mode ="out")[[1]])] <- 1
fr.eign.centr <- as.numeric(eigen_centrality(G)$vector)
influencemetric <- (standardise(fr.eign.centr)*0.35 +
standardise(G.infl.degree)*0.35 +
standardise(dfpartymatrix$lobbypartymetric)*0.15+
dfpartymatrix$lobbyleaderscore*0.15)/standardise(G.degree)
influencemetric[27] <- NaN
lobbytable <- data.frame(
node =order(influencemetric, decreasing = TRUE),
influencemetric =influencemetric[order(influencemetric, decreasing=TRUE)],
influencedegree =as.integer(G.infl.degree[order(influencemetric, decreasing=TRUE)]),
frienddegree =as.integer(G.degree[order(influencemetric, decreasing=TRUE)]),
eigncentrality = fr.eign.centr[order(influencemetric, decreasing=TRUE)])
kable(lobbytable)
| node | influencemetric | influencedegree | frienddegree | eigncentrality |
|---|---|---|---|---|
| 30 | 18.5579075 | 17 | 1 | 0.2824265 |
| 34 | 16.7119202 | 13 | 1 | 0.2823795 |
| 8 | 3.8838938 | 4 | 1 | 0.2845182 |
| 15 | 2.2206054 | 4 | 2 | 0.1458528 |
| 1 | 2.0923842 | 6 | 3 | 0.3996524 |
| 23 | 1.8391873 | 6 | 3 | 0.2879860 |
| 11 | 1.7547124 | 4 | 4 | 0.2579766 |
| 52 | 1.6467980 | 16 | 7 | 0.5745472 |
| 3 | 1.6305246 | 0 | 3 | 0.4401284 |
| 47 | 1.5350129 | 0 | 1 | 0.2401134 |
| 49 | 1.5282100 | 2 | 3 | 0.3136156 |
| 24 | 1.5021059 | 5 | 4 | 0.4450061 |
| 39 | 1.4579584 | 4 | 4 | 0.4584425 |
| 44 | 1.4423484 | 1 | 3 | 0.3164431 |
| 31 | 1.3795791 | 1 | 3 | 0.2887602 |
| 37 | 1.3129402 | 3 | 4 | 0.4095977 |
| 7 | 1.2323846 | 17 | 8 | 0.6597561 |
| 20 | 1.1850436 | 15 | 7 | 0.4694557 |
| 21 | 1.1769142 | 22 | 10 | 0.7981309 |
| 50 | 1.1767373 | 7 | 8 | 0.6093845 |
| 35 | 1.1057094 | 2 | 5 | 0.5173991 |
| 4 | 1.0777311 | 1 | 2 | 0.3492070 |
| 45 | 1.0397453 | 5 | 3 | 0.3597986 |
| 22 | 1.0337946 | 10 | 8 | 0.6818688 |
| 26 | 1.0049177 | 4 | 5 | 0.3559966 |
| 38 | 0.9824128 | 4 | 3 | 0.3752081 |
| 57 | 0.9481101 | 5 | 6 | 0.4374619 |
| 16 | 0.9436568 | 4 | 5 | 0.3073649 |
| 19 | 0.8778689 | 12 | 10 | 0.7039080 |
| 48 | 0.8605046 | 3 | 7 | 0.5856534 |
| 2 | 0.8442780 | 8 | 7 | 0.3635735 |
| 28 | 0.8196417 | 5 | 7 | 0.4574079 |
| 58 | 0.7572261 | 3 | 6 | 0.3336447 |
| 13 | 0.7553972 | 3 | 6 | 0.3318702 |
| 10 | 0.7548661 | 4 | 4 | 0.4080203 |
| 56 | 0.7523368 | 5 | 8 | 0.5129516 |
| 29 | 0.7338182 | 5 | 9 | 0.6179031 |
| 25 | 0.7004809 | 7 | 8 | 0.7466455 |
| 46 | 0.6990546 | 1 | 10 | 0.8518746 |
| 6 | 0.6945717 | 6 | 6 | 0.5344624 |
| 33 | 0.6750000 | 11 | 15 | 1.0000000 |
| 12 | 0.6748642 | 2 | 7 | 0.4134802 |
| 17 | 0.6680650 | 6 | 12 | 0.8321731 |
| 41 | 0.5081433 | 5 | 4 | 0.2149901 |
| 60 | 0.5019801 | 1 | 3 | 0.2854089 |
| 59 | 0.4855190 | 2 | 8 | 0.6657073 |
| 9 | 0.4578365 | 5 | 5 | 0.2646960 |
| 40 | 0.4500662 | 2 | 3 | 0.2218188 |
| 51 | 0.4469554 | 5 | 10 | 0.6502959 |
| 18 | 0.4436618 | 5 | 6 | 0.3317099 |
| 5 | 0.4276252 | 4 | 5 | 0.2814075 |
| 36 | 0.3679381 | 0 | 3 | 0.2669875 |
| 14 | 0.3560979 | 8 | 10 | 0.3759439 |
| 43 | 0.3416421 | 3 | 5 | 0.2538447 |
| 32 | 0.3378422 | 2 | 5 | 0.2915228 |
| 42 | 0.3362258 | 1 | 3 | 0.2123069 |
| 55 | 0.3266288 | 2 | 4 | 0.2250004 |
| 54 | 0.3003728 | 3 | 6 | 0.2740721 |
| 53 | 0.1318182 | 2 | 4 | 0.1047173 |
| 27 | NaN | 1 | 0 | 0.1543776 |
For the Implementation team it would be useful to have:
dfpartymatrix$implpartymetric <- 0
##add party type metrics
dfpartymatrix$implpartymetric[dfpartymatrix$guestlist == "exclusive"] <- 2
dfpartymatrix$implpartymetric[dfpartymatrix$guestlist == "expansive"] <- 1
dfpartymatrix$implpartymetric[dfpartymatrix$guestlist == "tight"] <- 3
##add leader metric
dfpartymatrix$implleaderscore <- 0
dfpartymatrix$implleaderscore[as.vector(adjacent_vertices(G.imp, 19, mode ="out")[[1]])] <- 1
fr.cls.centr <- closeness(G)
implementationmetric <- (standardise(fr.cls.centr)*0.15 +
standardise(G.imp.degree)*0.55 +
standardise(dfpartymatrix$implpartymetric)*0.15 +
dfpartymatrix$implleaderscore*0.15)/standardise(G.degree)
implementationmetric[27] <- NaN
impltable <- data.frame(
node =order(implementationmetric, decreasing = TRUE),
implementationmetric =implementationmetric[order(implementationmetric, decreasing=TRUE)],
influencedegree =as.integer(G.infl.degree[order(implementationmetric, decreasing=TRUE)]),
frienddegree =as.integer(G.degree[order(implementationmetric, decreasing=TRUE)]),
closenesscentrality = fr.cls.centr[order(implementationmetric, decreasing=TRUE)])
kable(impltable)
| node | implementationmetric | influencedegree | frienddegree | closenesscentrality |
|---|---|---|---|---|
| 30 | 14.5409839 | 17 | 1 | 0.0047170 |
| 8 | 10.8419282 | 4 | 1 | 0.0046083 |
| 47 | 7.2830803 | 0 | 1 | 0.0045872 |
| 34 | 3.0991728 | 13 | 1 | 0.0048309 |
| 4 | 2.7837543 | 1 | 2 | 0.0048544 |
| 1 | 2.4230329 | 6 | 3 | 0.0038760 |
| 15 | 2.2697639 | 4 | 2 | 0.0037736 |
| 42 | 2.1712930 | 1 | 3 | 0.0046296 |
| 40 | 1.9911634 | 2 | 3 | 0.0046083 |
| 45 | 1.9608655 | 5 | 3 | 0.0043860 |
| 60 | 1.8227448 | 1 | 3 | 0.0046729 |
| 38 | 1.7658397 | 4 | 3 | 0.0042553 |
| 24 | 1.6257978 | 5 | 4 | 0.0040984 |
| 41 | 1.4943652 | 5 | 4 | 0.0040486 |
| 36 | 1.4866695 | 0 | 3 | 0.0048077 |
| 31 | 1.4785152 | 1 | 3 | 0.0046296 |
| 23 | 1.4505993 | 6 | 3 | 0.0044248 |
| 55 | 1.4285479 | 2 | 4 | 0.0046729 |
| 10 | 1.3826802 | 4 | 4 | 0.0042017 |
| 6 | 1.3699517 | 6 | 6 | 0.0043103 |
| 43 | 1.3063609 | 3 | 5 | 0.0046512 |
| 22 | 1.2620448 | 10 | 8 | 0.0041841 |
| 18 | 1.2410864 | 5 | 6 | 0.0048309 |
| 9 | 1.1892893 | 5 | 5 | 0.0044053 |
| 25 | 1.1186487 | 7 | 8 | 0.0042194 |
| 44 | 1.1182827 | 1 | 3 | 0.0045872 |
| 32 | 1.0983441 | 2 | 5 | 0.0045045 |
| 5 | 1.0836447 | 4 | 5 | 0.0043103 |
| 11 | 1.0342450 | 4 | 4 | 0.0044053 |
| 53 | 1.0011905 | 2 | 4 | 0.0002825 |
| 19 | 0.9697070 | 12 | 10 | 0.0040323 |
| 20 | 0.9689679 | 15 | 7 | 0.0044643 |
| 52 | 0.9648628 | 16 | 7 | 0.0043860 |
| 29 | 0.9615149 | 5 | 9 | 0.0042918 |
| 49 | 0.9527448 | 2 | 3 | 0.0046729 |
| 7 | 0.9492541 | 17 | 8 | 0.0042735 |
| 26 | 0.9315934 | 4 | 5 | 0.0047847 |
| 48 | 0.9189536 | 3 | 7 | 0.0042194 |
| 2 | 0.9140500 | 8 | 7 | 0.0047170 |
| 21 | 0.8401103 | 22 | 10 | 0.0042017 |
| 54 | 0.8232093 | 3 | 6 | 0.0045872 |
| 16 | 0.8150246 | 4 | 5 | 0.0045455 |
| 13 | 0.7946349 | 3 | 6 | 0.0047170 |
| 33 | 0.7942022 | 11 | 15 | 0.0042918 |
| 37 | 0.7718289 | 3 | 4 | 0.0043103 |
| 57 | 0.7622128 | 5 | 6 | 0.0047847 |
| 46 | 0.7487590 | 1 | 10 | 0.0042553 |
| 39 | 0.7479513 | 4 | 4 | 0.0040650 |
| 14 | 0.6953216 | 8 | 10 | 0.0002825 |
| 50 | 0.6616486 | 7 | 8 | 0.0044444 |
| 59 | 0.6510344 | 2 | 8 | 0.0043290 |
| 3 | 0.5953385 | 0 | 3 | 0.0046512 |
| 51 | 0.5560459 | 5 | 10 | 0.0042017 |
| 35 | 0.4832831 | 2 | 5 | 0.0040650 |
| 12 | 0.3867233 | 2 | 7 | 0.0037594 |
| 17 | 0.3832304 | 6 | 12 | 0.0041152 |
| 56 | 0.3828496 | 5 | 8 | 0.0035088 |
| 28 | 0.3185609 | 5 | 7 | 0.0037594 |
| 58 | 0.2374110 | 3 | 6 | 0.0041152 |
| 27 | NaN | 1 | 0 | 0.0066667 |